//****************************************************************
//* Copyright (c) 2008 Ford Motor Company. All Rights Reserved.
//*
//* $$Workfile:   EconomicSourceFacade.java  $$
//* $$Revision:   1.1  $$
//* $$Author:   JLOPE262  $$
//* $$Date:   Nov 21 2008 14:22:06  $$
//*
//*****************************************************************
package ar.com.ford.it.fullEconomics.facade;

import java.util.Collection;
import ar.com.ford.it.fullEconomics.exception.FullEconomicsException;
import ar.com.ford.it.fullEconomics.logic.EconomicSourceLogic;
import ar.com.ford.it.fullEconomics.persistence.dto.Teese02Econsource;
import ar.com.ford.it.fullEconomics.persistence.dto.Teesg01Plant;
import ar.com.ford.it.fullEconomics.wslx.FullEconomicsWslxUser;

public class EconomicSourceFacade {

    /**
     * Busca Economic Sources segun code y name
     * 
     * @param code
     * @param name
     * @return
     * @throws FullEconomicsException
     */
    public Collection<Teese02Econsource> findEconomicSources(String code,
                                                             String name,
                                                             Teesg01Plant plant)
            throws FullEconomicsException {
        EconomicSourceLogic logic = new EconomicSourceLogic();
        Collection<Teese02Econsource> ret = logic.findEconomicSources(code,
                name, plant);

        return ret;
    }

    /**
     * Da de alta el Economic Source pasado por parametro
     * 
     * @param economicSource
     * Economic Source a dar de alta
     * @param user
     * Usuario que da de alta el Economic Source
     * @throws FullEconomicsException
     */
    public void createEconomicSource(Teese02Econsource economicSource,
                                     FullEconomicsWslxUser user)
            throws FullEconomicsException {
        EconomicSourceLogic logic = new EconomicSourceLogic();

        logic.createEconomicSource(economicSource, user);
    }

    /**
     * Actualiza el Economic Source pasado por parametro
     * 
     * @param economicSource
     * Economic Source a actualizar
     * @param user
     * Usuario que actualiza el Economic Source
     * @throws FullEconomicsException
     */
    public void updateEconomicSource(Teese02Econsource economicSource,
                                     FullEconomicsWslxUser user)
            throws FullEconomicsException {
        EconomicSourceLogic logic = new EconomicSourceLogic();

        logic.updateEconomicSource(economicSource, user);
    }

    /**
     * Elimina el ecnomicSource pasado por parametro
     * 
     * @param economicSource
     * Economic Source a eliminar
     * @throws FullEconomicsException
     */
    public void deleteEconomicSource(Teese02Econsource economicSource)
            throws FullEconomicsException {
        EconomicSourceLogic logic = new EconomicSourceLogic();

        logic.deleteEconomicSource(economicSource);
    }

    /**
     * Determina si el Economic Source pasado por parametro puede ser borrado.
     * Esto lo determina segun tenga o no Economics haciendo referencia a el
     * 
     * @param economicSource
     * @return True si puede ser borrado. False en caso contrario
     */
    public boolean economicSourceCanBeDeleted(Teese02Econsource economicSource) {
        EconomicSourceLogic logic = new EconomicSourceLogic();
        boolean ret = false;
        
        ret = logic.economicSourceCanBeDeleted(economicSource);
        return ret;
    }

    /**
     * Determina si ya existe un Economic Source con el nombre "name" pasado por
     * parametro
     * 
     * @param name
     * @param plant
     * @return True si ya existe un Economic Source con el nombre pasado por
     * parametro. False en caso contrario
     * @throws FullEconomicsException
     */
    public boolean economicSourceNameAlreadyExists(String name, Teesg01Plant plant) throws FullEconomicsException {
        EconomicSourceLogic logic = new EconomicSourceLogic();
        boolean ret = false;
        
        ret = logic.economicSourceNameAlreadyExists(name, plant);
        return ret;
    }
}
